/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upn.sigemfi.vfi.beans;

import edu.upn.sigemfi.seg.be.Usuario;
import edu.upn.sigemfi.vfi.bc.UsuarioVentanillaDelegate;
import edu.upn.sigemfi.vfi.be.UsuarioVentanilla;
import edu.upn.sigemfi.seg.beans.IUController;
import edu.upn.sigemfi.vfi.bc.CajaDelegate;
import edu.upn.sigemfi.vfi.be.Caja;
import java.util.Date;
import java.util.List;
import org.richfaces.taglib.SuggestionBoxTag;

/**
 *
 * @author Programador
 */
public class UsuarioVentanillaController extends AbstractController {

    private UsuarioVentanillaDelegate delegado;
    private UsuarioVentanilla usuarioVentanilla;
    //CAJA
    private CajaDelegate delegadoCaja;
    private Caja caja;
    private Usuario usuarioElegido;

    public UsuarioVentanillaController() {
        delegado = new UsuarioVentanillaDelegate();
        delegadoCaja = new CajaDelegate();


//        IUController iua = (IUController) getBean("iu");
//
//
//
//        try {
//            usuarioVentanilla = delegado.buscarPorCodigoUsuario(iua.getUsuarioLogueado());
//
//            caja = delegadoCaja.buscarPorVentanilla(usuarioVentanilla.getFidOpeVentanilla());
//        } catch (Exception e) {
//            error("El usuario es invalido");
//        }






    }

     public String getCargarFormulario() {
         IUController iua = (IUController) getBean("iu");



        try {
            usuarioVentanilla = delegado.buscarPorCodigoUsuario(iua.getUsuarioLogueado());
            

            caja = delegadoCaja.buscarPorVentanilla(usuarioVentanilla.getFidOpeVentanilla());

            return null;
        } catch (Exception e) {
            error("El usuario es invalido");
        }
         return null;
    }




    public List<UsuarioVentanilla> getUsuarioVentanillas() {
        try {
            return delegado.listar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public String nuevo() {
        usuarioVentanilla = new UsuarioVentanilla();
        return "nuevo";
    }


    public String registrar() {
        try {

            Date hora = new Date();
            usuarioVentanilla.setFecha(hora);
            usuarioVentanilla.setHoraInicio("");
            usuarioVentanilla.setHoraFin("");
            usuarioVentanilla.setFidSegUsuario(usuarioElegido);
            delegado.crear(usuarioVentanilla);
            info("El usuario ventanillero se registró correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String actualizar() {
        try {
            delegado.editar(usuarioVentanilla);
            info("El usuario ventanillero se actualizó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String eliminar() {
        try {
            delegado.eliminar(usuarioVentanilla);
            info("El usuario se eliminó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public UsuarioVentanilla buscar(Long codigo) {
        try {
            return delegado.buscar(codigo);
        } catch (Exception e) {
            error(e.getMessage());
        }
        return null;
    }

    public UsuarioVentanilla getUsuarioVentanilla() {
        return usuarioVentanilla;
    }

    public void setUsuarioVentanilla(UsuarioVentanilla usuarioVentanilla) {
        this.usuarioVentanilla = usuarioVentanilla;
    }

    /**
     * @return the caja
     */
    public Caja getCaja() {
        return caja;
    }

    /**
     * @param caja the caja to set
     */
    public void setCaja(Caja caja) {
        this.caja = caja;
    }

    /**
     * @return the usuarioElegido
     */
    public Usuario getUsuarioElegido() {
        return usuarioElegido;
    }

    /**
     * @param usuarioElegido the usuarioElegido to set
     */
    public void setUsuarioElegido(Usuario usuarioElegido) {
        this.usuarioElegido = usuarioElegido;
    }
}
